﻿using 充电桩上位机.Model.FTRegisters;

namespace 充电桩上位机.Model.PTAConfig;

public class PTAConfigModel
{
    #region User
    public string? 用户密码 { get; set; } = string.Empty;
    public string? Modbus { get; set; } = string.Empty;
    public int? RS485波特率 { get; set; }
    public bool? Mac充电是否启动 { get; set; }
    public bool? POS是否启动 { get; set; }
    public bool? DC枪兼容充电模式是否启用 { get; set; }
    public bool? AC枪兼容充电模式是否启用 { get; set; }
    public string? POS预扣款金额 { get; set; } = string.Empty;
    public string? POS金额单位 { get; set; } = string.Empty;
    public string? 单位电价每kwh的价格 { get; set; } = string.Empty;
    public string? 单位小时服务费 { get; set; } = string.Empty;
    public bool? 遥测数据设置 { get; set; }
    public int? LCD第一语言 { get; set; }
    public int? LCD第二语言 { get; set; }
    public bool? 是否启用自动使用MAC充电 { get; set; }
    public string? 屏幕右下角的文字 { get; set; }
    public int? MAC上报格式 { get; set; }
    public bool? RFID是否禁用 { get; set; }
    public bool? 是否锁定使用UTC时间 { get; set; }
    public bool? 直接按键停止充电使能 { get; set; }
    public string? OCPP遥测服务器URL_CPID { get; set; } = string.Empty;
    public bool? OCPP遥测服务器HTTP身份校验使能 { get; set; }
    public string? OCPP遥测服务器HTTP身份校验用户名 { get; set; } = string.Empty;
    public string? OCPP遥测服务器HTTP身份校验密码 { get; set; } = string.Empty;
    public bool? 是否禁止未插枪远程鉴权 { get; set; }
    public bool? 离线IC卡允许在OCPP模式下进行本地缓存校验 { get; set; }
    public bool? PE检测是否禁用 { get; set; }
    public string? 时间 { get; set; } = string.Empty;
    public string? 离线IC卡号1 { get; set; } = string.Empty;
    public string? 离线IC卡号2 { get; set; } = string.Empty;
    public string? 离线IC卡号3 { get; set; } = string.Empty;
    public string? 离线IC卡号4 { get; set; } = string.Empty;
    public string? 离线IC卡号5 { get; set; } = string.Empty;
    public bool? 禁用服务器时间来校准充电桩 { get; set; }
    public bool? Bootnotification在每次重新连接服务器后都会重新发送一次 { get; set; }
    public bool? Heart总是根据配置项定时发送_不受Websocket的ping_pong影响 { get; set; }
    public int? 是否启用Modbus临时功率限制 { get; set; }
    public bool? 是否启用离线充电模式下即插即用 { get; set; }
    public bool? 是否启用OCPP延迟连接 { get; set; }
    public bool? POS机启动的数据不经过OCPP平台_当POS机启动充电的时候_枪头会变为unavaliable { get; set; }
    public bool? 地锁支持 { get; set; }
    public string? 自动使用MAC充电倒计时秒数 { get; set; } = string.Empty;
    public int? 服务费单位 { get; set; }
    public string? 货币单位精度 { get; set; } = string.Empty;
    public int? LCD视频广告播放策略 { get; set; }
    public int? LCD视频广告存放位置 { get; set; }
    public string? LCD视频广告存放数量 { get; set; }
    public int? 充电桩启动充电过程异常_是上报suspend还是上报_fault { get; set; }
    public bool? 是否允许充电桩未插枪本地刷卡_无按钮_插枪界面允许直接刷卡鉴权 { get; set; }
    public bool? OfflineMeterValue_禁用 { get; set; }
    public int? 每次断网重连后_StatusNotification_发送逻辑设定 { get; set; }
    public int? 充电启动失败后是否自动恢复到Available或Preparing状态 { get; set; }    
    #endregion
    #region NetWork
    public bool? 离线模式使能 { get; set; }
    public bool? 自动切换网络 { get; set; }
    public bool? 以太网启用 { get; set; }
    public bool? WIFI启用 { get; set; }
    public bool? LTE启用 { get; set; }
    public string? WIFI_SSID { get; set; } = string.Empty;
    public string? WIFI密码 { get; set; } = string.Empty;
    public string? APN { get; set; } = string.Empty;
    public string? APN_User { get; set; } = string.Empty;
    public string? APN_Password { get; set; } = string.Empty;
    public bool? 静态IP使能 { get; set; }
    public string? 静态IP { get; set; } = string.Empty;
    public string? 默认网关 { get; set; } = string.Empty;
    public string? 子网掩码 { get; set; } = string.Empty;
    public bool? 自定义DNS { get; set; }
    public string? 自定义首选DNS { get; set; } = string.Empty;
    public string? 自定义备用DNS { get; set; } = string.Empty;
    #endregion
    #region Server
    public string? OCPP服务器URL { get; set; } = string.Empty;
    public bool? HTTP身份校验使能 { get; set; }
    public string? HTTP身份校验用户名 { get; set; } = string.Empty;
    public string? HTTP身份校验密码 { get; set; } = string.Empty;
    public string? ChargePointModel_OCPP { get; set; } = string.Empty;
    public string? ChargePointVendor { get; set; } = string.Empty;
    public string? QR_Code_1 { get; set; } = string.Empty;
    public string? QR_Code_2 { get; set; } = string.Empty;
    public string? QR_Code_3 { get; set; } = string.Empty;
    public string? 服务器CA证书文件名 { get; set; } = string.Empty;
    public string? 服务器证书字符串 { get; set; } = string.Empty;
    public ushort[] 服务器证书数组 { get; set; }
    #endregion
    #region FT
    public HelpFTRegistersModel? Connecotr_Type1 { get; set; } = new();
    public HelpFTRegistersModel? Connecotr_Type2 { get; set; } = new();
    public HelpFTRegistersModel? Connecotr_Type3 { get; set; } = new();
    public string? 直流输出最大电压能力 { get; set; } = string.Empty;
    public string? 直流输出最小电压能力 { get; set; } = string.Empty;
    public string? 直流输出最大电流能力 { get; set; } = string.Empty;
    public string? 直流输出最小电流能力 { get; set; } = string.Empty;
    public string? 交流输入额定相电压_L_N { get; set; } = string.Empty;
    public bool? 是否启用网络安全策略 { get; set; }
    public bool? 硬件是否具备水浸传感器 { get; set; }
    public bool? 硬件是否具备倾斜传感器 { get; set; }
    public bool? 硬件是否具备烟雾传感器 { get; set; }
    public bool? 硬件是否具备湿度传感器 { get; set; }
    public bool? 硬件是否具备POS机 { get; set; }
    public bool? 硬件是否具备加热器 { get; set; }
    public string? 风扇数量 { get; set; } = string.Empty;
    public bool? 风扇反馈类型1 { get; set; }
    public bool? 风扇反馈类型2 { get; set; }
    public bool? 风扇反馈类型3 { get; set; }
    public bool? 功率分配模式 { get; set; }
    public bool? 功率分配模式2 { get; set; }
    public string? 串联接触器分割的模块数量1 { get; set; } = string.Empty;
    public string? 串联接触器分割的模块数量2 { get; set; } = string.Empty;
    public string? 并联接触器分割的模块数量1 { get; set; } = string.Empty;
    public string? 并联接触器分割的模块数量2 { get; set; } = string.Empty;
    public string? 并联接触器分割的模块数量3 { get; set; } = string.Empty;
    public string? 并联接触器分割的模块数量4 { get; set; } = string.Empty;
    public string? 直流输出最大电压能力2 { get; set; } = string.Empty;
    public string? 直流输出最小电压能力2 { get; set; } = string.Empty;
    public string? 直流输出最大电流能力2 { get; set; } = string.Empty;
    public string? 直流输出最小电流能力2 { get; set; } = string.Empty;
    public int? 触摸屏灵敏度 { get; set; }
    public string? 充电桩出厂序列号_需要与铭牌一致 { get; set; } = string.Empty;
    public bool? 雷达传感器 { get; set; }
    public bool? 液冷泵 { get; set; }
    public bool? 温度传感启用 { get; set; }
    public bool? 单个UU模块最大功率1 { get; set; }
    public bool? 单个UU模块最大功率2 { get; set; }
    public bool? 单个UU模块最大功率3 { get; set; }
    public bool? GBT_24V辅助电源 { get; set; }
    public bool? PTB_电表 { get; set; }
    public bool? 硬件解锁 { get; set; }
    #endregion
}
